home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / wsc4vb24 / selftest.frm < prev    next >
Text File  |  1999-06-01  |  7KB  |  274 lines

  1. VERSION 2.00
  2. Begin Form Selftest 
  3.    AutoRedraw      =   -1  'True
  4.    Caption         =   "Self Test"
  5.    ClientHeight    =   4020
  6.    ClientLeft      =   1770
  7.    ClientTop       =   1935
  8.    ClientWidth     =   7365
  9.    FontBold        =   -1  'True
  10.    FontItalic      =   0   'False
  11.    FontName        =   "Courier New"
  12.    FontSize        =   8.25
  13.    FontStrikethru  =   0   'False
  14.    FontUnderline   =   0   'False
  15.    Height          =   4710
  16.    Left            =   1710
  17.    LinkTopic       =   "Form1"
  18.    ScaleHeight     =   4020
  19.    ScaleWidth      =   7365
  20.    Top             =   1305
  21.    Width           =   7485
  22.    Begin Menu menuInstruct 
  23.       Caption         =   "Instructions"
  24.    End
  25.    Begin Menu menuSettings 
  26.       Caption         =   "Settings"
  27.       Begin Menu menu1stPort 
  28.          Caption         =   "1st Port"
  29.          Begin Menu menu1stCOM1 
  30.             Caption         =   "COM1"
  31.          End
  32.          Begin Menu menu1stCOM2 
  33.             Caption         =   "COM2"
  34.          End
  35.          Begin Menu menu1stCOM3 
  36.             Caption         =   "COM3"
  37.          End
  38.          Begin Menu menu1stCOM4 
  39.             Caption         =   "COM4"
  40.          End
  41.       End
  42.       Begin Menu menu2ndPort 
  43.          Caption         =   "2nd Port"
  44.          Begin Menu menu2ndCOM1 
  45.             Caption         =   "COM1"
  46.          End
  47.          Begin Menu menu2ndCOM2 
  48.             Caption         =   "COM2"
  49.          End
  50.          Begin Menu menu2ndCOM3 
  51.             Caption         =   "COM3"
  52.          End
  53.          Begin Menu menu2ndCOM4 
  54.             Caption         =   "COM4"
  55.          End
  56.       End
  57.    End
  58.    Begin Menu menuTest 
  59.       Caption         =   "Test"
  60.    End
  61.    Begin Menu menuExit 
  62.       Caption         =   "Exit"
  63.    End
  64. End
  65. ' SELFTEST.BAS
  66.  
  67. Option Explicit
  68.  
  69. Sub Form_Load ()
  70.    Dim X As String
  71.    The1stPort = COM1
  72.    The2ndPort = COM2
  73.    menu1stCOM1.Checked = True
  74.    menu2ndCOM2.Checked = True
  75.    TestString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
  76.    Call ShowCaption
  77. End Sub
  78.  
  79. Sub menu1stCOM1_Click ()
  80.     The1stPort = COM1
  81.     Call Uncheck1stComPorts
  82.     menu1stCOM1.Checked = True
  83.     Call ShowCaption
  84. End Sub
  85.  
  86. Sub menu1stCOM2_Click ()
  87.     The1stPort = COM2
  88.     Call Uncheck1stComPorts
  89.     menu1stCOM2.Checked = True
  90.     Call ShowCaption
  91. End Sub
  92.  
  93. Sub menu1stCOM3_Click ()
  94.     The1stPort = COM3
  95.     Call Uncheck1stComPorts
  96.     menu1stCOM3.Checked = True
  97.     Call ShowCaption
  98. End Sub
  99.  
  100. Sub menu1stCOM4_Click ()
  101.     The1stPort = COM4
  102.     Call Uncheck1stComPorts
  103.     menu1stCOM4.Checked = True
  104.     Call ShowCaption
  105. End Sub
  106.  
  107. Sub menu2ndCOM1_Click ()
  108.     The2ndPort = COM1
  109.     Call Uncheck2ndComPorts
  110.     menu2ndCOM1.Checked = True
  111.     Call ShowCaption
  112. End Sub
  113.  
  114. Sub menu2ndCOM2_Click ()
  115.     The2ndPort = COM2
  116.     Call Uncheck2ndComPorts
  117.     menu2ndCOM2.Checked = True
  118.     Call ShowCaption
  119. End Sub
  120.  
  121. Sub menu2ndCOM3_Click ()
  122.     The2ndPort = COM3
  123.     Call Uncheck2ndComPorts
  124.     menu2ndCOM3.Checked = True
  125.     Call ShowCaption
  126. End Sub
  127.  
  128. Sub menu2ndCOM4_Click ()
  129.     The2ndPort = COM4
  130.     Call Uncheck2ndComPorts
  131.     menu2ndCOM4.Checked = True
  132.     Call ShowCaption
  133. End Sub
  134.  
  135. Sub menuDebug_Click ()
  136. Dim Code As Integer
  137. Call ShutDown
  138. End Sub
  139.  
  140. Sub menuExit_Click ()
  141.   End
  142. End Sub
  143.  
  144. Sub menuInstruct_Click ()
  145. SELFTEST.Cls
  146. SELFTEST.Print "SELFTEST can operate in one of two ways:"
  147. SELFTEST.Print
  148. SELFTEST.Print "1] A single port with a loopback adapter on the end."
  149. SELFTEST.Print "   The adapter should have TD & RD tied together."
  150. SELFTEST.Print
  151. SELFTEST.Print "2] Two serial ports on the same computer."
  152. SELFTEST.Print "   Connect the two ports together using a Null Modem Cable."
  153. SELFTEST.Print
  154. End Sub
  155.  
  156. Sub menuTest_Click ()
  157.    Dim I, N As Integer
  158.    Dim Code As Integer
  159.    Dim Count As Integer
  160.    Dim TimeMark As Long
  161.    Dim TestLength As Integer
  162.    'begin test run
  163.    SELFTEST.Cls
  164.    RunNumber = RunNumber + 1
  165.    SELFTEST.Print "TESTING: COM"; 1 + The1stPort; " ==> COM"; 1 + The2ndPort
  166.    SELFTEST.Print "Run #"; RunNumber
  167.    'check ports
  168.    If (The1stPort = COM1) And (The2ndPort = COM3) Then
  169.      SELFTEST.Print "COM1 and COM3 share the same IRQ"
  170.      Exit Sub
  171.    End If
  172.    If (The1stPort = COM2) And (The2ndPort = COM4) Then
  173.      SELFTEST.Print "COM2 and COM4 share the same IRQ"
  174.      Exit Sub
  175.    End If
  176.    'turn on 1st port
  177.    Code = GoOnline(The1stPort)
  178.    If Code = 0 Then
  179.      Call ShutDown
  180.      Exit Sub
  181.    End If
  182.    'turn on 2nd port
  183.    If The1stPort <> The2ndPort Then
  184.      Code = GoOnline(The2ndPort)
  185.      If Code = 0 Then
  186.        Call ShutDown
  187.        Exit Sub
  188.      End If
  189.    End If
  190.    'test !
  191.    SELFTEST.Print
  192.    SELFTEST.Print "Test string = "; TestString
  193.    Call ShowConfig
  194.    SELFTEST.Print "[Test string will be sent 16 times]"
  195.    TestLength = Len(TestString)
  196.    SELFTEST.Print "  Sending: ";
  197.    For N = 1 To 16
  198.      SELFTEST.Print Right$(Str$(N), 3);
  199.      For I = 1 To TestLength
  200.        Code = SioPutc(The1stPort, Asc(Mid$(TestString, I, 1)))
  201.        If Code < 0 Then
  202.          Call SayError(SELFTEST, Code)
  203.          Call ShutDown
  204.          Exit Sub
  205.        End If
  206.      Next I
  207.    Next N
  208.    SELFTEST.Print
  209.    SELFTEST.Print "Receiving: ";
  210.    TimeMark = Timer + 4
  211.    For N = 1 To 16
  212.      SELFTEST.Print Right$(Str$(N), 3);
  213.      For I = 1 To TestLength
  214.        Do
  215.          'try for incoming char
  216.          Code = SioGetc(The2ndPort)
  217.          If Code >= 0 Then
  218.            Exit Do
  219.          End If
  220.          'no incoming
  221.          If (Timer >= TimeMark) Or (Code <> WSC_NO_DATA) Then
  222.            SELFTEST.Print
  223.            If Code = WSC_NO_DATA Then
  224.              SELFTEST.Print "[Timeout waiting for incoming data]"
  225.            Else
  226.              Call SayError(SELFTEST, Code)
  227.            End If
  228.            'shut down now
  229.            Call ShutDown
  230.            Exit Sub
  231.          End If
  232.        Loop
  233.        'test incoming char
  234.        If Chr$(Code) <> Mid$(TestString, I, 1) Then
  235.          SELFTEST.Print
  236.          SELFTEST.Print "ERROR: Received "; Chr$(Code);
  237.          SELFTEST.Print ", but expected "; Mid$(TestString, I, 1);
  238.          SELFTEST.Print " for character #"; I
  239.          Call ShutDown
  240.          Exit Sub
  241.        End If
  242.      Next I
  243.    Next N
  244.    SELFTEST.Print
  245.    'clear buffers
  246.    Code = SioRxClear(The1stPort)
  247.    Code = SioTxClear(The1stPort)
  248.  
  249.    If The1stPort <> The2ndPort Then
  250.      Code = SioRxClear(The2ndPort)
  251.      Code = SioTxClear(The2ndPort)
  252.    End If
  253.    'done
  254.    Call ShutDown
  255.    SELFTEST.Print "*** Test complete"
  256. End Sub
  257.  
  258. Sub Uncheck1stComPorts ()
  259. 'uncheck all COM ports
  260. menu1stCOM1.Checked = False
  261. menu1stCOM2.Checked = False
  262. menu1stCOM3.Checked = False
  263. menu1stCOM4.Checked = False
  264. End Sub
  265.  
  266. Sub Uncheck2ndComPorts ()
  267. 'uncheck all COM ports
  268. menu2ndCOM1.Checked = False
  269. menu2ndCOM2.Checked = False
  270. menu2ndCOM3.Checked = False
  271. menu2ndCOM4.Checked = False
  272. End Sub
  273.  
  274.